package com.zjsru.plan2025.oneday;

/**
 * 2843. 统计对称整数的数目
 *
 * @Author: cookLee
 * @Date: 2025-04-11
 */
public class CountSymmetricIntegers {

    /**
     * 主
     * \
     * 输入：low = 1, high = 100
     * 输出：9
     * 解释：在 1 到 100 范围内共有 9 个对称整数：11、22、33、44、55、66、77、88 和 99 。
     * \
     * 输入：low = 1200, high = 1230
     * 输出：4
     * 解释：在 1200 到 1230 范围内共有 4 个对称整数：1203、1212、1221 和 1230 。
     * \
     *
     * @param args args
     */
    public static void main(String[] args) {
        CountSymmetricIntegers countSymmetricIntegers = new CountSymmetricIntegers();
        System.out.println(countSymmetricIntegers.countSymmetricIntegers(1, 100));
    }

    public int countSymmetricIntegers(int low, int high) {
        //2*n必定是偶位数字，1 <= low <= high <= 10000 限定只有百位或者千位
        int ans = 0;
        for (int i = low; i <= high; i++) {
            //直接整除11即可，避免三位数(保持2*n 的位数需要一致)导致的错误数据
            if (i < 100 && i % 11 == 0) {
                ans++;
            }
            if (i >= 1000 && i < 10000) {
                //百千位和个位十位数字的和
                int left = i / 1000 + (i % 1000) / 100;
                int right = i % 10 + (i % 100) / 10;
                if (left == right) {
                    ans++;
                }
            }
        }
        return ans;
    }

}
